package ProjectoX;

import java.awt.event.KeyEvent;

public class MarioDisparo extends MarioGrande {
	
	public MarioDisparo(Nivel nivel) {
		super(nivel);
		NombresSpriteMov = new String [] {"MarioDisparo/mario2.png", "MarioDisparo/mario1.png", "MarioDisparo/mario3.png", "MarioDisparo/mario4.png", 
				  "MarioDisparo/mario5.png", "MarioDisparo/mario6.png"};
		NombresSpriteMovIz = new String [] {"MarioDisparo/mario2_iz.png", "MarioDisparo/mario1_iz.png", "MarioDisparo/mario3_iz.png", "MarioDisparo/mario4_iz.png", 
					"MarioDisparo/mario5_iz.png", "MarioDisparo/mario6_iz.png"};
		setSpriteName(new String [] {"MarioDisparo/mario2.png"});
		AltoM = 62;
	}
	
	public void colision (Componente C) {
		C.colision(this);
	}
	
	public void colision(Enemigo E) {
		E.colision(this);
	}
	
	public void teclaPresionada(KeyEvent e) {
		switch (e.getKeyCode()) {
			case	KeyEvent.VK_UP : 	if (enTierra) {
										GetMov().setMovVertical(-PLAYER_SPEED);
									 	posBase = Pos.getY();
									 	enTierra = false;
									 	salto = true;
									 	continuarSaltando = true;
									 	miNivel.getSoundCache().playSound("Sonidos/smw_jump.wav");
								 	 }
									 break;
			case	KeyEvent.VK_LEFT : left = true;
									   setSpriteName(NombresSpriteMovIz);
									   break;
			case	KeyEvent.VK_RIGHT : right = true;
										setSpriteName(NombresSpriteMov);
										break;
			case	KeyEvent.VK_SPACE : disparar();
										break;
		}
		updateSpeed();
	}
	
	public void teclaSoltada(KeyEvent e) {
		
		switch (e.getKeyCode()) {
		
			case	KeyEvent.VK_UP : continuarSaltando = false; 
								     break;
			case	KeyEvent.VK_LEFT : left = false;
									   if (!right) 
										   if (invencible) 
											   setSpriteName(new String [] {"MarioDisparo/mario2_iz.png", "MarioDisparo/mariobrilla2_iz.png"});
										   else setSpriteName(new String [] {"MarioDisparo/mario2_iz.png"});
									   break;
			case	KeyEvent.VK_RIGHT : right = false;
									    if (!left)  
									    	if (invencible) 
									    		setSpriteName(new String [] {"MarioDisparo/mario2.png", "MarioDisparo/mariobrilla2.png"});
									    	else setSpriteName(new String [] {"MarioDisparo/mario2.png"});
			break;
		}
		updateSpeed();
	}
	
	public void setInvencible(){
		invencible = true;
		
		NombresSpriteMov = new String [] {"MarioDisparo/mariobrilla2.png", "MarioDisparo/mario1.png", "MarioDisparo/mario3.png", "MarioDisparo/mariobrilla4.png", 
										  "MarioDisparo/mario5.png", "MarioDisparo/mario6.png"};
		NombresSpriteMovIz = new String [] {"MarioDisparo/mariobrilla2_iz.png", "MarioDisparo/mario1_iz.png", "MarioDisparo/mario3_iz.png", "MarioDisparo/mariobrilla4_iz.png", 
											"MarioDisparo/mario5_iz.png", "MarioDisparo/mario6_iz.png"};
		new Reminder(150, this);
	}
	
	public void setVencible() {
		invencible = false;
		String aux = getNombresSprite()[0];
		NombresSpriteMov = new String [] {	aux	};
		setSpriteName(NombresSpriteMov);
		NombresSpriteMov = new String [] { "MarioDisparo/mario2.png", "MarioDisparo/mario1.png","MarioDisparo/mario3.png", "MarioDisparo/mario4.png", 
										  "MarioDisparo/mario5.png", "MarioDisparo/mario6.png"};
		NombresSpriteMovIz = new String [] {"MarioDisparo/mario2_iz.png", "MarioDisparo/mario1_iz.png", "MarioDisparo/mario3_iz.png", "MarioDisparo/mario4_iz.png", 
											"MarioDisparo/mario5_iz.png", "MarioDisparo/mario6_iz.png"};

	}
	
	public void disparar() {
		Disparo dis;
		if ((getNombresSprite()[0].equals("MarioDisparo/mario2.png"))||(getNombresSprite()[0].equals("MarioDisparo/mariobrilla2.png"))) {
			dis = new Disparo (miNivel, new Posicion (Pos.getX()+Pos.getAncho(), Pos.getY()+(Pos.getAlto()/2), 16, 16), 9-getPos().getY()/AnchoM,8);
			dis.GetMov().setMovHorizontal(PLAYER_SPEED+2);
		} else {
			dis = new Disparo (miNivel, new Posicion (Pos.getX()-1, Pos.getY()+(Pos.getAlto()/2), 16, 16), 9-getPos().getY()/AnchoM,6);
			dis.GetMov().setMovHorizontal(-PLAYER_SPEED-2);
		}
		miNivel.addPowerUp(dis);
			
		
		
	}

}
